<!DOCTYPE html>
<html lang="en">
  <head>
    <meta charset="UTF-8" />
    <meta http-equiv="X-UA-Compatible" content="IE=edge" />
    <meta name="viewport" content="width=device-width, initial-scale=1.0" />
    <title>Document</title>
  </head>
  <body>
    <script>
      // promise三个状态： pendding  fulfilled  rejected
      // resolve()， 将 promise 的状态改为了 fulfilled ，并且将 resolve 值保存下来
      // reject()， 将 promise 的状态改为了 rejectd ，并且将 reject 值保存下来
      // 碰到 promise.then 这个微任务，将其加入微任务队列
      // script 定时器  是 宏任务
      //  .then 是微任务
    </script>
    <script>
      // const promise = new Promise((resolve, reject) => {
      //   console.log(5);
      //   setTimeout(() => {
      //     console.log('10');
      //     resolve('1');
      //     console.log('9');
      //   }, 0);
      //   console.log(2);
      // });
      // promise.then((res) => {
      //   console.log(res);
      // });
      // console.log(4);
    </script>
    <script>
      // 先把一个宏任务下面的所有微任务全部执行完毕，在执行下一轮宏任务
      // 你去银行排队办业务，  10个人排队， 一个人的事情就是宏任务，
      // 一个人 取钱，买理财，转账， 这些属于一个人的事情就是 微任务
      // setTimeout(() => {
      //   console.log(1);
      // }, 0);
      // let a = new Promise(function (resolve) {
      //   console.log(2);
      //   resolve();
      // })
      //   .then(function () {
      //     console.log(3);
      //   })
      //   .then(function () {
      //     console.log(4);
      //   });
      // console.log(5);
    </script>
    <script>
      // setTimeout(() => {
      //   console.log(1);
      // }, 0);
      // new Promise(function (resolve) {
      //   console.log(2);
      //   console.time('START');
      //   for (var i = 0; i < 100000; i += 1) {
      //     i == 99999 && resolve();
      //   }
      //   console.timeEnd('START');
      //   console.log(3);
      // }).then(function () {
      //   console.log(4);
      // });
      // console.log(5);
    </script>
    <script>
      // const p = new Promise((resolve, reject) => {
      //   resolve(11);
      // })
      //   .then((res) => {
      //     console.log(11, res);
      //     // then的回调函数里面， 直接return的值，就相当于 Promsie.resolve(值)，默认当做成功
      //     return 11;
      //     // return Promise.reject(11);
      //   })
      //   .then((res) => {
      //     console.log(22, res);
      //     // return 22;
      //   })
      //   .then((res) => {
      //     console.log(33, res);
      //     return 33;
      //   });

      // console.log(44);
    </script>
  </body>
</html>
